<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //一.exec(str)方法对一个指定的字符串执行一个正则表达式，没有找到任何匹配结果返回null，如果找到一个匹配，它将返回一个数组。(和全局没有关系)
    //使用 match 方法获取匹配内容，返回数组
    // var str = '12a34b56c78defg';
    // var reg = /\d+/;
    // console.log(str.match(reg)); //[12]
    // console.log(reg.exec(str)); //[12]

    // var reg = /\d+/g;
    // console.log(str.match(reg)); //["12", "34", "56", "78"]
    // console.log(reg.exec(str)); //[12]

    //二.RegExp对象5个属性(了解)
    // m 表示多行匹配
    // var str = 'hello\nworld';
    // var reg = /^w/m;
    // console.log(reg.test(str)); //true

    //三.lastIndex：是一个可读/写的整数，如果匹配模式中带有g修饰符，这个属性存储在整个字符串中下一次检索的开始位置，这个属性会被exec( ) 和 test( ) 方法用到。
    // var str = '1a2b3';
    // var reg = /[a-z]/g;
    //全局匹配存在变化的索引lastIndex，找匹配到的字符下一个索引。如果索引对应的值不满足条件，重新开始，当前这次匹配显示false;
    // console.log(reg.test(str)); //true
    // console.log(reg.lastIndex); //2
    // console.log(reg.test(str)); //true
    // console.log(reg.lastIndex); //4
    // console.log(reg.test(str)); //false

    // console.log(reg.lastIndex); //0

    // console.log(reg.test(str)); //true
    // console.log(reg.lastIndex); //2
    // console.log(reg.test(str)); //true
    // console.log(reg.lastIndex); //4
    // console.log(reg.test(str)); //false

    var str = '1a2b3';
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
    console.log(/[a-z]/g.test(str)); //true
</script>